# Python 标准库中的日志模块。
import logging
# 用于通过字典或配置文件配置日志
import logging.config
from common.tools import join_path,get_project_path
class Login():
    def login(self,name):
        # 配置日志
        logging.config.dictConfig({
            # 必须设置为 1，表示使用当前版本的配置格式
            'version': 1,
            # 为 True，会禁用之前所有已存在的非根日志记录器
            # 为 False，保留现有的日志记录器
            'disable_existing_loggers': False,
            # 定义日志的输出格式。
            'formatters': {
                # 是格式的名称，可以自定义。
                'standard': {
                    # format指定日志内容的格式
                    # asctime日志时间->levelname日志级别（如 INFO、DEBUG）-> name日志记录器的名称（通常是模块名 __name__）->message日志的具体内容
                    'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
                },
            },
            # 定义日志的输出方式
            'handlers': {
                # default控制台输出
                'default': {
                    # 只记录 DEBUG 及以上级别的日志
                    'level': 'DEBUG',
                    'formatter': 'standard',
                    # 输出到控制台（如终端）
                    'class': 'logging.StreamHandler',
                },
                # 文件输出
                'file': {
                    'level': 'DEBUG',
                    'formatter': 'standard',
                    # 表示输出到文件
                    'class': 'logging.FileHandler',
                    # 防止中文乱码
                    'encoding': 'utf-8',
                    # 存入log目录中日志文件名称filename
                    'filename': join_path([get_project_path(), './log/login.log']),
                },
            },
            # 定义日志记录器的行为
            'loggers': {
                '': {  # 定义根日志记录器
                    # 使用 default（控制台）和 file（文件）两种处理器
                    'handlers': ['default', 'file'],
                    # 设置记录的最低级别为 DEBUG（包括 DEBUG、INFO、WARNING、ERROR、CRITICAL）
                    'level': 'DEBUG',
                    # 如果为 True，日志会传递给父记录器（这里是根记录器，所以不影响）
                    # 如果为 False，日志不会向上传递。
                    'propagate': True,
                },
            },
        })

        # 使用日志记录器
        logger = logging.getLogger(__name__)
        logger.info(name)